链表删除结点
链表删除结点
- remove(item)删除结点
- search(item)查找结点是否存在
删除结点有几种情况:
- 如果要删除的是头结点,让
head = cur.next
- 非头部找到删除元素
# 单链表的实现
class SingleLinkList(object):
......
# 删除结点
# remove(item)
def remove(self, item):
# 游标
cur = self.head
# 辅助游标
pre = None
while cur is not None:
# 找到了要删除的元素
if cur.item == item:
# 要删除的元素在头部
if cur == self.head:
self.head = cur.next
else:
pre.next = cur.next
# 没有找到要删除的元素
else:
pre = cur
cur = cur.next
cur = cur.next
# 单链表的实现
class SingleLinkList(object):
......
# 查找结点是否存在
# search(item)
def search(self, item):
# 游标
cur = self.head
while cur is not None:
# 找到了指定的结点
if cur.item == item:
return True
cur = cur.next
return False